The term “job” is often used to describe a process to be carried out on a computer. Exemplary jobs which may be carried out on, for instance, a mainframe computer, include stopping all access to a database, restarting a database that has been stopped, copying a database (i.e., creating a duplicate database), and checking pointers in a database to ensure their validity. Generally, more than one item of documentation is necessary for a particular job to be executed, the number of items and the nature thereof being dependent upon the job for which execution is desired.
For instance, in mainframe computer environments, often times there are three separate items that are necessary for a job to be executed: a job member, a procedure, and one or more control cards. The job member generally provides at least one job card, for instance, setting forth a job name, and one or more statements which indicate what is to be executed (i.e., one or more execute statements). Generally, an execute statements identifies, at least the name of the procedure to be executed. The procedure is a set of JCL (Job Control Language) statements that, when executed, perform a given process. For instance, a procedure may indicate that the pointers in a database are to be checked to ensure their validity. Each procedure is specific to the database on which it is to be run and, thus, there is one procedure per database for each procedure to be run with respect thereto. The procedure also identifies the control cards necessary for it to be executed. A control card is a record defining what is to be done in the procedure. For instance, in the above-described example wherein the procedure indicates that the pointers in a database are to be checked, the procedure may indicate that a control card identifying which pointers are to be checked is necessary for it to be executed, e.g., a control card indicating that pointers X, Y, and Z are to be checked.
Each of the job member, the procedure, and the control card for a given job must be separately generated and maintained in separate libraries. By way of example, contemplate a situation wherein it is desirable to run a particular process, e.g., a pointer check, on 1500 different databases. In this situation, generation of 1500 job members, 1500 procedures, and 1500 control cards would be necessary, as would maintenance of a job documentation library containing the 1500 job members, a procedure library containing the 1500 procedures and a control card library containing the 1500 control cards. As each of these files is manually generated, multiple opportunities for human error arise.
Additionally, if a change in the procedure is desired, all 1500 procedures must be changed. For instance, if it is desired to change the above-described pointer checker procedure, all 1500 procedures must be changed, again, leaving open multiple opportunities for human error.
Accordingly, a method for reducing the number of opportunities for human error that are present in the generation and maintenance of the documentation necessary for jobs to be executed in a mainframe computing environment would be desirable. Additionally, a method for reducing the amount of documentation that must be generated and maintained for execution of jobs in a mainframe computing environment, particularly when a given action is to be executed on multiple files (e.g., databases) would be advantageous.